package com.letoken.platform.admin.service;

import com.letoken.platform.pub.req.PageData;
import com.letoken.platform.repo.admin.req.user.*;
import com.letoken.platform.repo.admin.res.user.*;

import java.util.List;

/**
 * @author letokenlabs
 * @date 2022/11/23$
 */
public interface AdminAppService {
    /**
     * 查询app用户列表
     *
     * @param req
     * @return
     */
    
    public PageData<QueryAppUserListRes> queryUserList(QueryAppUserListReq req);

    /**
     * 查询kol列表
     * @param req
     * @return
     */
    
    public PageData<QueryAppKolListRes> queryUserTeamList(QueryAppKolListReq req);

    /**
     * 查询充值记录
     * @param req
     * @return
     */
    
    public PageData<QueryAppDepositListRes> queryDepositList(QueryAppDepositListReq req);

    /**
     * 查询提现记录
     * @param req
     * @return
     */
    
    public PageData<QueryAppWithdrawListRes> queryWithdrawList(QueryAppWithdrawListReq req);

    /**
     * 查询提现审核
     * @param req
     * @return
     */

    
    public PageData<QueryAppWithdrawAuditListRes> queryWithdrawAuditList(QueryAppWithdrawAuditListReq req);

    /**
     * 提现审核通过
     * @param req
     * @return
     */
    
    public EditWithdrawYesRes editWithdrawYes(EditWithdrawYesReq req);

    /**
     * 提现审核拒绝
     * @param req
     * @return
     */
    
    public EditWithdrawNoRes editWithdrawNo(EditWithdrawNoReq req);

    
    public PageData<QueryQuickswapListRes> queryQuickswapList(QueryQuickswapListReq req);

    
    public PageData<QueryAppAssetsListRes> queryUserAssetsList(QueryAppAssetsListReq req);


    QueryWithdrawHistoryRes queryWithdrawHistory(Integer userId);

    PageData<?> queryUserAssetsDetailsList(Integer userId,String currency, Integer pageNum, Integer size);

    List<QueryAppUserTokenAilableBalanceRes> queryUserAvailableBalance(Integer userId);

    List<QueryTeamAchievementRes> queryTeamAchievementList(QueryTeamAchievementReq req);

    QueryUserCountByDateRes queryUserCountByDate();

    QueryAppRechargeCountRes queryRechargeCount();

    QueryWithdrawCountRes queryWithdrawCount();

    EditWithdrawYesRes auditAgainYes(EditWithdrawYesReq req);

    List<QueryLineChartRes> queryDepositLineChart(QueryLineChartReq req);

    List<QueryLineChartRes> queryUserLineChart(QueryLineChartReq req);

    List<QueryLineChartRes> queryWithdrawLineChart(QueryLineChartReq req);

    void isLockedUser(IsLockedUserReq req);

    List<QueryAppAssetsSumRes> queryUserAssetsSum();


    PageData<?> queryUserEcoHistoryList(Integer userId, Integer pageNum, Integer size);

    PageData<UpLevelHistoryRes> ecoLevelHistory(EcoLevelHistoryReq req);


}
